<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>大数据热点图</title>
  <style>
    body {
      background-color: rgb(51, 77, 100);
    }

    .map {
      position: relative;
      width: 700px;
      height: 600px;
      margin: 50px auto;
      background-color: rgba(94, 125, 156, 0.1);
    }

    .city,
    .city_text {
      position: absolute;
      top: 100px;
      right: 100px;
      cursor: pointer;
      color: #fff;
    }

    .city_text {
      top: 95px;
      right: 60px;
    }

    .taibei,
    .taibei_text {
      position: absolute;
      top: 511px;
      right: 62px;
      color: #fff;
    }

    .taibei_text {
      top: 505px;
      right: 20px;
    }

    /* 圆圈 */
    .dotted {
      width: 8px;
      height: 8px;
      background-color: #09f;
      border-radius: 50%;
    }

    /* 波纹 */
    /* 获取div中class属性为pulse开头的 */
    /* 权重：类选择+10 标签选择器+1 伪类选择器+10 = 21  */
    .city div[class^='pulse'] {

      position: absolute;
      /* top: 0; */

      /* 在父盒子中保持垂直居中 为了保证发散时波纹是以中心为原点向四周发散 */
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);

      width: 8px;
      height: 8px;

      border-radius: 50%;

      box-shadow: 0 0 12px #009dfd;

      animation: pulse 1.2s linear infinite;
    }

    /* 每个波纹进行动画的时间差 */
    /* 注意权重问题 */
    .city div.pulse2 {
      animation-delay: 0.4s;
    }

    .city div.pulse3 {
      animation-delay: 0.8s;
    }

    /* 动画定义 */
    @keyframes pulse {
      0% {}

      70% {
        width: 40px;
        height: 40px;
        opacity: 1;
      }

      100% {
        width: 79px;
        height: 70px;
        opacity: 0;
      }
    }
  </style>
</head>

<body>

  <div class="map">
    <div class="city">
      <!-- 小圆圈 -->
      <div class="dotted"></div>

      <!-- 波纹 -->
      <div class="pulse1"></div>
      <div class="pulse2"></div>
      <div class="pulse3"></div>
      <!--  -->
    </div>
    <div class="city_text">
      北京
    </div>
    <div class="city taibei">
      <!-- 小圆圈 -->
      <div class="dotted"></div>

      <!-- 波纹 -->
      <div class="pulse1"></div>
      <div class="pulse2"></div>
      <div class="pulse3"></div>
      <!--  -->
    </div>
    <div class="taibei_text">
      台北
    </div>
  </div>

</body>

</html>